// SlidingArea.qml
import QtQuick
import QtQuick.Controls

Rectangle {
    property int widthValue: 1024
    property int heightValue: 200
    property Item animationTarget  // 将 `animationTarget` 作为目标对象的引用

    // 设置滑动区域的边界和最小触发距离
    property int dragStartX: 0
    property int dragEndX: -width / 2
    property int triggerDistance: width / 4  // 设置触发距离为宽度的四分之一

    id: swipeRect
    width: widthValue
    height: heightValue
    anchors.bottom: parent.bottom
    anchors.bottomMargin: 20
    color: "transparent"
    //color: "red"  //for debug
    // 使用 MouseArea 来模拟滑动区域
    MouseArea {
        id: controlSwipeArea
        anchors.fill: parent
        drag.target: parent
        onReleased: {
            var draggedDistance = parent.x - dragStartX
            if (draggedDistance > triggerDistance) {
                    console.log("LEFT")
                    ui.CPP_PageIndex--
            }else if (draggedDistance < -triggerDistance){
                    console.log("RIGHT")
                    ui.CPP_PageIndex++
            }
            //回到原位
            parent.x = 0
            //myCallback()  // 绑定回调函数
        }
    }

    // 动画
    NumberAnimation {
        id: swipeAnimation
        target: animationTarget
        properties: "x"          // 动画的目标属性
        from: 0                  // 初始位置
        to: -widthValue          // 结束位置（左滑动结束位置）
        duration: 500            // 动画持续时间（单位：毫秒）
        easing.type: Easing.OutQuad
    }
}
